Apparatus and method for identifying impacts and causes of variability or control giveaway on model-based controller performance

ABSTRACT

A method includes obtaining data identifying values of one or more controlled variables associated with an industrial process controller. The method also includes identifying periods when at least one of the one or more controlled variables has been moved to an associated limit by the controller. The method further includes, for each identified period, (i) identifying a standard deviation of predicted values for the associated controlled variable and (ii) determining a control giveaway value for the associated controlled variable based on the standard deviation. The control giveaway value is associated with an offset between the associated controlled variable&#39;s average value and the associated limit. In addition, the method includes identifying variances in the one or more controlled variables using the control giveaway values and generating a graphical display identifying one or more impacts or causes for at least some of the variances.

The present application is a continuation of U.S. patent applicationSer. No. 15/973,272, filed May 7, 2018, which claims the benefit of U.S.Provisional Patent Application No. 62/518,352 filed on Jun. 12, 2017;U.S. Provisional Patent Application No. 62/518,397 filed on Jun. 12,2017; U.S. Provisional Patent Application No. 62/518,474 filed on Jun.12, 2017; and U.S. Provisional Patent Application No. 62/518,478 filedon Jun. 12, 2017, all of which are hereby incorporated by reference.

TECHNICAL FIELD

This disclosure relates generally to industrial process control andautomation systems. More specifically, this disclosure relates to anapparatus and method for identifying impacts and causes of variabilityor control giveaway on model-based controller performance.

BACKGROUND

Industrial process control and automation systems are often used toautomate large and complex industrial processes. These types of controland automation systems routinely include process controllers and fielddevices like sensors and actuators. Some of the process controllerstypically receive measurements from the sensors and generate controlsignals for the actuators.

Model-based industrial process controllers are one type of processcontroller routinely used to control the operations of industrialprocesses. Model-based process controllers typically use one or moremodels to mathematically represent how one or more properties within anindustrial process respond to changes made to the industrial process.Unfortunately, the benefits that can be obtained using model-basedcontrollers often decline over time. This can be due to a number offactors, such as inaccurate models, misconfiguration, or operatoractions. In some extreme cases, the benefits that could be obtainedusing model-based controllers can be reduced by up to fifty percent oreven more over time.

SUMMARY

This disclosure provides an apparatus and method for identifying impactsand causes of variability or control giveaway on model-based controllerperformance.

In a first embodiment, a method includes obtaining data identifyingvalues of one or more controlled variables associated with an industrialprocess controller. The method also includes identifying periods when atleast one of the one or more controlled variables has been moved to anassociated limit by the controller. The method further includes, foreach identified period, (i) identifying a standard deviation ofpredicted values for the associated controlled variable and (ii)determining a control giveaway value for the associated controlledvariable based on the standard deviation. The control giveaway value isassociated with an offset between the associated controlled variable'saverage value and the associated limit. In addition, the method includesidentifying variances in the one or more controlled variables using thecontrol giveaway values and generating a graphical display identifyingone or more impacts or causes for at least some of the variances.

In a second embodiment, an apparatus includes at least one interfaceconfigured to receive data identifying values of one or more controlledvariables associated with an industrial process controller. Theapparatus also includes at least one processor configured to identifyperiods when at least one of the one or more controlled variables hasbeen moved to an associated limit by the controller. The at least oneprocessor is also configured, for each identified period, to (i)identify a standard deviation of predicted values for the associatedcontrolled variable and (ii) determine a control giveaway value for theassociated controlled variable based on the standard deviation. Thecontrol giveaway value is associated with an offset between theassociated controlled variable's average value and the associated limit.The at least one processor is further configured to identify variancesin the one or more controlled variables using the control giveawayvalues and generate a graphical display identifying one or more impactsor causes for at least some of the variances.

In a third embodiment, a non-transitory computer readable mediumcontains instructions that when executed cause at least one processingdevice to obtain data identifying values of one or more controlledvariables associated with an industrial process controller. The mediumalso contains instructions that when executed cause the at least oneprocessing device to identify periods when at least one of the one ormore controlled variables has been moved to an associated limit by thecontroller. The medium further contains instructions that when executedcause the at least one processing device, for each identified period, to(i) identify a standard deviation of predicted values for the associatedcontrolled variable and (ii) determine a control giveaway value for theassociated controlled variable based on the standard deviation. Thecontrol giveaway value is associated with an offset between theassociated controlled variable's average value and the associated limit.In addition, the medium contains instructions that when executed causethe at least one processing device to identify variances in the one ormore controlled variables using the control giveaway values and generatea graphical display identifying one or more impacts or causes for atleast some of the variances.

Other technical features may be readily apparent to one skilled in theart from the following figures, descriptions, and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of this disclosure, reference is nowmade to the following description, taken in conjunction with theaccompanying drawings, in which:

FIG. 1 illustrates an example industrial process control and automationsystem according to this disclosure;

FIG. 2 illustrates an example device for identifying impacts and causesof variability or control giveaway on model-based controller performanceaccording to this disclosure;

FIG. 3 illustrates an example process for identifying and using impactsand causes of variability or control giveaway on model-based controllerperformance according to this disclosure;

FIG. 4 illustrates an example technique for measuring model-basedcontroller performance according to this disclosure;

FIG. 5 illustrates an example method for identifying impacts and causesof variability or control giveaway on model-based controller performanceaccording to this disclosure;

FIG. 6 illustrates an example method for processing data to identifyimpacts and causes of variability or control giveaway on model-basedcontroller performance according to this disclosure;

FIGS. 7A and 7B illustrate an example method for validating andfiltering a process variable's value according to this disclosure;

FIGS. 8A through 8C illustrate an example method for determiningepisodes when a process variable's value is limiting and for estimatingthe process variable's standard deviation according to this disclosure;

FIGS. 9A through 9C illustrate an example method for determining aprocess variable's control giveaway and standard deviation duringlimiting episodes according to this disclosure;

FIG. 10 illustrates an example method for identifying causes of aprocess variable's variance according to this disclosure;

FIG. 11 illustrates an example graphical user interface for identifyingimpacts and causes of variability or control giveaway on model-basedcontroller performance according to this disclosure; and

FIGS. 12 and 13 illustrate example drill-down displays in a graphicaluser interface for identifying impacts and causes of variability orcontrol giveaway on model-based controller performance according to thisdisclosure.

DETAILED DESCRIPTION

FIGS. 1 through 13, discussed below, and the various embodiments used todescribe the principles of the present invention in this patent documentare by way of illustration only and should not be construed in any wayto limit the scope of the invention. Those skilled in the art willunderstand that the principles of the invention may be implemented inany type of suitably arranged device or system.

As noted above, model-based industrial process controllers are one typeof process controller routinely used to control the operations ofindustrial processes. Model-based process controllers can help toimprove the performance of continuous or other industrial processes. Forexample, in industrial processes, a controlled variable (CV) generallyrepresents a process variable that can be measured or inferred and thatis ideally controlled to be at or near a desired setpoint or within adesired range of values. A manipulated variable (MV) generallyrepresents a process variable that can be adjusted in order to alter oneor more controlled variables. A disturbance variable (DV) generallyrepresents a process variable whose value can be considered but cannotbe controlled. As a simple example, a flow rate of material through apipe could denote a controlled variable, a valve opening for a valvethat controls the flow rate of material could denote a manipulatedvariable, and an ambient temperature around the pipe or the valve coulddenote a disturbance variable.

Model-based controllers can help to reduce the variability of keyprocess variables (controlled variables) and optimize these keyvariables through changes to other process variables (manipulatedvariables). Model-based controllers often attempt to optimize the valuesof their controlled variables through changes to their manipulatedvariables in order to push the controlled variables to the mostattractive set of constraints. The most attractive set of constraintscould represent the most economically-attractive set of constraints,such as the set of constraints that minimizes material usage, minimizesenergy usage, or maximizes production.

The variability of controlled variables (such as the variabilitycharacterized by the standard deviation of a controlled variable'svalue) often has a direct impact on how close a model-based controllercan operate to its constraints. While an optimization objective functionwithin a model-based controller often aims to move a set of controlledvariables towards their constraint limits, a control function within thesame controller often aims to reduce the amount or percentage of timethat the controlled variables are violating their high or low limits. Ifthe controlled variables have no variation (their standard deviation iszero), these two objectives can be met simultaneously. However, as thestandard deviations of the controlled variables increase, there istension between the control and optimization objectives, causing theaverage values of the controlled variables to move away from theiroptimized high or low limits.

The distance or difference between the actual or average operating pointof a model-based controller and its associated constraint or controllimit can be referred to as “control giveaway.” Larger control giveawayvalues indicate that a model-based controller is operating farther awayfrom its constraints, which may be generally undesirable. Processvariability and control giveaway can result from a number of factors andcan vary over time. As a result, the benefits that can be obtained usingmodel-based controllers can also vary over time and typically decreaseas time goes on. Thus, it may be necessary or desirable to identifyprocess variability or control giveaway associated with a model-basedcontroller and to make changes in order to reduce or minimize theprocess variability or control giveaway. This can have a direct impacton how well an industrial process is controlled using the model-basedcontroller.

This disclosure provides various techniques for evaluating processvariability or control giveaway much more frequently in order to providean early detection of loss of performance in a model-based controller.Visualizations can be provided to help users identify potential causesof the process variability or control giveaway, which can help toimprove the speed of resolving the process variability or controlgiveaway issues. The visualizations can also be provided to help theusers identify the impacts of the process variability or controlgiveaway (such as in economic terms), which can help the users to seethe benefits of resolving the process variability or control giveawayissues.

In this way, these techniques help to identify the actual causes andimpacts of process variability and control giveaway on a model-basedcontroller's ability to drive closer to its constraints, withoutassumptions regarding data distributions or controller tunings. Theresults of the analyses can then be used to modify the operation of themodel-based controller or other components in order to reduce theprocess variability or control giveaway of the controller, which affectshow the controller controls the underlying industrial process.

Among other things, this could enable a new Industrial Internet ofThings (IIoT) service or other service to be deployed, where the servicecan be used to reduce the cost of troubleshooting a model-basedcontroller's performance and to improve the lifecycle benefits of themodel-based controller. In particular embodiments, these techniquescould be implemented using a computer program that periodically analysesbatches of data collected from customers' premises as part of acloud-based analytics solution. The resulting analysis conclusions couldthen be visualized to the customers using cloud-hosted dashboards toenable the customers, support engineering teams, or other personnel toview performance information and troubleshoot performance issues.

FIG. 1 illustrates an example industrial process control and automationsystem 100 according to this disclosure. As shown in FIG. 1, the system100 includes various components that facilitate production or processingof at least one product or other material. For instance, the system 100can be used to facilitate control over components in one or multipleindustrial plants. Each plant represents one or more processingfacilities (or one or more portions thereof), such as one or moremanufacturing facilities for producing at least one product or othermaterial. In general, each plant may implement one or more industrialprocesses and can individually or collectively be referred to as aprocess system. A process system generally represents any system orportion thereof configured to process one or more products or othermaterials in some manner.

In FIG. 1, the system 100 includes one or more sensors 102 a and one ormore actuators 102 b. The sensors 102 a and actuators 102 b representcomponents in a process system that may perform any of a wide variety offunctions. For example, the sensors 102 a could measure a wide varietyof characteristics in the process system, such as flow, pressure, ortemperature. Also, the actuators 102 b could alter a wide variety ofcharacteristics in the process system, such as valve openings. Each ofthe sensors 102 a includes any suitable structure for measuring one ormore characteristics in a process system. Each of the actuators 102 bincludes any suitable structure for operating on or affecting one ormore conditions in a process system.

At least one network 104 is coupled to the sensors 102 a and actuators102 b. The network 104 facilitates interaction with the sensors 102 aand actuators 102 b. For example, the network 104 could transportmeasurement data from the sensors 102 a and provide control signals tothe actuators 102 b. The network 104 could represent any suitablenetwork or combination of networks. As particular examples, the network104 could represent at least one Ethernet network (such as onesupporting a FOUNDATION FIELDBUS protocol), electrical signal network(such as a HART network), pneumatic control signal network, or any otheror additional type(s) of network(s).

The system 100 also includes various controllers 106. The controllers106 can be used in the system 100 to perform various functions in orderto control one or more industrial processes. For example, a first set ofcontrollers 106 may use measurements from one or more sensors 102 a tocontrol the operation of one or more actuators 102 b. A second set ofcontrollers 106 could be used to optimize the control logic or otheroperations performed by the first set of controllers. A third set ofcontrollers 106 could be used to perform additional functions. Thecontrollers 106 could therefore support a combination of approaches,such as regulatory control, advanced regulatory control, supervisorycontrol, and advanced process control.

Each controller 106 includes any suitable structure for controlling oneor more aspects of an industrial process. At least some of thecontrollers 106 could, for example, representproportional-integral-derivative (PID) controllers or multivariablecontrollers, such as controllers implementing model predictive control(MPC) or other advanced process control (APC). As a particular example,each controller 106 could represent a computing device running areal-time operating system, a WINDOWS operating system, or otheroperating system.

At least one of the controllers 106 shown in FIG. 1 denotes amodel-based controller that operates using one or more process models.For example, each of these controllers 106 could operate using one ormore process models to determine, based on measurements from one or moresensors 102 a, how to adjust one or more actuators 102 b. In someembodiments, each model associates one or more manipulated ordisturbance variables (often referred to as independent variables) withone or more controlled variables (often referred to as dependentvariables). Each of these controllers 106 could use an objectivefunction to identify how to adjust its manipulated variables in order topush its controlled variables to the most attractive set of constraints.

At least one network 108 couples the controllers 106 and other devicesin the system 100. The network 108 facilitates the transport ofinformation between components. The network 108 could represent anysuitable network or combination of networks. As particular examples, thenetwork 108 could represent at least one Ethernet network.

Operator access to and interaction with the controllers 106 and othercomponents of the system 100 can occur via various operator consoles110. Each operator console 110 could be used to provide information toan operator and receive information from an operator. For example, eachoperator console 110 could provide information identifying a currentstate of an industrial process to the operator, such as values ofvarious process variables and warnings, alarms, or other statesassociated with the industrial process. Each operator console 110 couldalso receive information affecting how the industrial process iscontrolled, such as by receiving setpoints or control modes for processvariables controlled by the controllers 106 or other information thatalters or affects how the controllers 106 control the industrialprocess. Each operator console 110 includes any suitable structure fordisplaying information to and interacting with an operator. For example,each operator console 110 could represent a computing device running aWINDOWS operating system or other operating system.

Multiple operator consoles 110 can be grouped together and used in oneor more control rooms 112. Each control room 112 could include anynumber of operator consoles 110 in any suitable arrangement. In someembodiments, multiple control rooms 112 can be used to control anindustrial plant, such as when each control room 112 contains operatorconsoles 110 used to manage a discrete part of the industrial plant.

The control and automation system 100 here may optionally include atleast one historian 114 and/or one or more servers 116. The historian114 represents a component that stores various information about thesystem 100. The historian 114 could, for instance, store informationthat is generated by the various controllers 106 during the control ofone or more industrial processes. The historian 114 includes anysuitable structure for storing and facilitating retrieval ofinformation. Although shown as a single component here, the historian114 could be located elsewhere in the system 100, or multiple historianscould be distributed in different locations in the system 100.

Each server 116 denotes a computing device that executes applicationsfor users of the operator consoles 110 or other applications. Theapplications could be used to support various functions for the operatorconsoles 110, the controllers 106, or other components of the system100. Each server 116 could represent a computing device running aWINDOWS operating system or other operating system. Note that whileshown as being local within the control and automation system 100, thefunctionality of the server 116 could be remote from the control andautomation system 100. For instance, the functionality of the server 116could be implemented in a computing cloud 118 or a remote servercommunicatively coupled to the control and automation system 100 via agateway 120.

At least one component of the system 100 could support a mechanism foridentifying impacts and causes of variability or control giveaway onmodel-based controller performance. For example, this functionalitycould be implemented in an operator console 110, a server 116, or acomputing cloud 118 or remote server. Among other things, thisfunctionality can be used to evaluate process variability or controlgiveaway much more frequently in order to provide an early detection ofthe loss of performance in one or more model-based controllers 106.Visualizations can also be provided, such as on displays of the operatorconsoles 110, to help users identify potential causes or impacts of theprocess variability or control giveaway. Ideally, this allows theprocess variability or control giveaway to be identified and reduced,which can help to improve the operation of the model-based controllers106. Additional details regarding this functionality are provided below.

Although FIG. 1 illustrates one example of an industrial process controland automation system 100, various changes may be made to FIG. 1. Forexample, the system 100 could include any number of sensors, actuators,controllers, networks, operator consoles, control rooms, historians,servers, and other components. Also, the makeup and arrangement of thesystem 100 in FIG. 1 is for illustration only. Components could beadded, omitted, combined, further subdivided, or placed in any othersuitable configuration according to particular needs. As a particularexample, the historian 114 may be implemented in the computing cloud118. Further, particular functions have been described as beingperformed by particular components of the system 100. This is forillustration only. In general, control and automation systems are highlyconfigurable and can be configured in any suitable manner according toparticular needs. In addition, FIG. 1 illustrates one exampleoperational environment where impacts and causes of variability orcontrol giveaway on model-based controller performance can beidentified. This functionality can be used in any other suitable system.

FIG. 2 illustrates an example device 200 for identifying impacts andcauses of variability or control giveaway on model-based controllerperformance according to this disclosure. The device 200 could, forexample, denote an operator console 110, server 116, or device used inthe computing cloud 118 described above with respect to FIG. 1. However,the device 200 could be used in any other suitable system.

As shown in FIG. 2, the device 200 includes at least one processor 202,at least one storage device 204, at least one communications unit 206,and at least one input/output (I/O) unit 208. Each processor 202 canexecute instructions, such as those that may be loaded into a memory210. The instructions could identify impacts and causes of variabilityor control giveaway on model-based controller performance as describedin this patent document. Each processor 202 denotes any suitableprocessing device, such as one or more microprocessors,microcontrollers, digital signal processors, application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs), ordiscrete circuitry.

The memory 210 and a persistent storage 212 are examples of storagedevices 204, which represent any structure(s) capable of storing andfacilitating retrieval of information (such as data, program code,and/or other suitable information on a temporary or permanent basis).The memory 210 may represent a random access memory or any othersuitable volatile or non-volatile storage device(s). The persistentstorage 212 may contain one or more components or devices supportinglonger-term storage of data, such as a read only memory, hard drive,Flash memory, or optical disc.

The communications unit 206 supports communications with other systemsor devices. For example, the communications unit 206 could include anetwork interface card or a wireless transceiver facilitatingcommunications over a wired or wireless network. The communications unit206 may support communications through any suitable physical or wirelesscommunication link(s).

The I/O unit 208 allows for input and output of data. For example, theI/O unit 208 may provide a connection for user input through a keyboard,mouse, keypad, touchscreen, or other suitable input device. The I/O unit208 may also send output to a display, printer, or other suitable outputdevice.

Although FIG. 2 illustrates one example of a device 200 for identifyingimpacts and causes of variability or control giveaway on model-basedcontroller performance, various changes may be made to FIG. 2. Forexample, components could be added, omitted, combined, furthersubdivided, or placed in any other suitable configuration according toparticular needs. Also, computing devices can come in a wide variety ofconfigurations, and FIG. 2 does not limit this disclosure to anyparticular configuration of computing device.

FIG. 3 illustrates an example process 300 for identifying and usingimpacts and causes of variability or control giveaway on model-basedcontroller performance according to this disclosure. As shown in FIG. 3,data associated with at least one industrial process 302 and dataassociated with at least one industrial process control and automationsystem 304 (which could represent the system 100) can be collected. Thedata associated with the industrial process 302 could represent anysuitable data, such as the values of various controlled, manipulated,and optionally disturbance variables. The data associated with thecontrol and automation system 304 could also represent any suitabledata, such as an identification of process variable constraints or otherdata used, generated, or collected by the system 304.

The data could be collected by any suitable device or system, such as anoperator console 110, server 116, or device used in the computing cloud118 described above with respect to FIG. 1. Also, while shown as beingcollected from the industrial process 302 and the system 304, the datacould be obtained from any suitable source(s). For instance, the system304 could collect data about the industrial process 302 and provide allof the data for analysis, or the data about the industrial process 302and the system 304 could be stored in at least one historian or otherdatabase and retrieved for analysis. Note that a secure data transfermechanism could be used to protect the data being collected andtransmitted, and the data could be collected and transmitted inreal-time, near real-time, or non-real-time depending on theimplementation.

However the data is obtained, the data can be stored and analyzedperiodically, continuously, or at other times in order to determine keyprocess variable metrics and controller performance metrics. Forexample, the data can be analyzed as described below in order toidentify process variability or control giveaway associated with one ormore model-based controllers, such as one or more controllers 106operating in the system 304. The data can also be analyzed to identifyimpacts and causes of the process variability or control giveaway.

In some embodiments, the results of the analysis can identify any keyprocess variable constraint violations associated with a model-basedcontroller 106, such as those associated with equipment operatingboundaries, qualities, or environmental constraints and their causes.The results can also identify the overall contribution of themodel-based controller 106 to some characteristic, such as the overalleconomic contribution of the controller (which could be expressed interms of economics, material or energy usage, production, etc.). Theresults can further identify the issues limiting the performance of themodel-based controller 106 and the relative impact of each issue.Example issues that could limit performance of the controller 106 mayinclude an incorrect setting of one or more controller limits by anoperator, instrumentation issues (such as sensor or valve issues), andincreased process variance due to external disturbances, equipmentissues, or control system tunings.

In some embodiments, the analysis of the collected data involves the useof a “digital twin” associated with a model-based controller'soptimizer. In other words, a replica of the functionality of thecontroller's optimizer can be used during the analysis, such as toperform “what if” analyses to determine how the controller could haveoperated differently. This allows the analysis to determine whetheroperation of the controller could be improved to push the controllercloser to its constraints. This also allows the analysis to determinethe impacts (such as in terms of economics, material usage, energyusage, production, etc.) that process variability or control giveaway ofthe controller could have on an overall industrial process.

The results of the analysis can be used to generate one or moredashboards 306. The dashboards 306 can be viewed by one or more usersto, among other things, identify process variability or control giveawayof a model-based controller 106 and identify impacts and potentialcauses of the process variability or control giveaway. For example, thedashboards 306 could be used during daily inspections 308 to identifywhether an investigation is needed into the impacts and potential causesof process variability or control giveaway. If so, review and decisionpersonnel 310 could use the dashboards 306 to more closely investigatewhat might be causing the process variability or control giveaway. Oncelikely causes are identified, corrective action could be taken, such asscheduling operator training 312 or implementing changes 314 in theindustrial process 302 or control and automation system 304. Of course,the dashboards 306 or the results of the analyses could be used in anyother suitable manner.

In some embodiments, the analysis results can be presented in differentdashboards 306 based on the roles of the users using the dashboards 306.For example, an operations management view in a dashboard 306 couldallow an operations manager to understand the impacts of operatorbehaviors, equipment issues, and other external factors on a model-basedcontroller 106 and consequently the impacts of those factors onperformance of the industrial process 302 and the health of equipment inthe industrial process 302. A process engineer's view in a dashboard 306could highlight the impacts of key constraint limits on the performanceof the industrial process 302. A control engineer's view in a dashboard306 could provide detailed diagnostic insights into underlying causes ofgood or poor controller performance, possibly along with an assessmentof the economic or other impacts of the underlying issues to helpjustify corrective actions (such as process or application maintenanceor operator training).

One example goal here could be to provide a good line of sight betweenthe issues that impact a model-based controller's performance and lostopportunity costs associated with those impacts. Another example goalcould be to reduce the difficulty and cost of maintaining and improvingthe performance of the industrial process 302 and the model-basedcontroller(s) 106 in the control and automation system 304. In specificembodiments, this approach can help to improve collaboration between theoperations management, process engineering, and control engineeringpersonnel in order to maintain and improve the performance of theindustrial process 302 while leveraging the model-based controller(s)106 to achieve the best effect. Note, however, that the approachesdescribed in this patent document could be used in any other suitablemanner.

Any suitable analyses could occur using the data about the industrialprocess 302 and the control and automation system 304. As noted above,the benefits that can be obtained using model-based controllers oftendecline over time, which can be due to a number of factors. Examplefactors can include constraint/limit issues, model quality issues,inferential quality issues, improper manipulated or controlled variableoperating mode issues, and optimizer tuning issues. Constraint/limitissues can occur when manipulated or controlled variable limits are notset properly. Model quality issues can occur when there is a mismatchbetween models used by a controller and the actual behavior of anindustrial process, which can cause some controllers to exhibit highvariability and/or to push wrong constraints. Inferential quality issuescan occur when controllers infer values of certain process variables,and high variance, bias, or other problems can prevent the controllersfrom achieving their full benefit. Improper manipulated or controlledvariable operating mode issues can occur when an operator removes amanipulated or controlled variable from a control matrix (preventing itfrom being used by a controller). Optimizer tuning issues can occur whenlinear objective coefficients are not set as Product Value Optimization(PVO) values in a controller, which in some conditions can cause thecontroller to push incorrect constraints.

In order to analyze data to identify limit issues, the analysis couldinvolve the use of the “digital twin” optimizer associated with acontroller 106. The optimizer could use linear objective coefficientsthat are set up as PVO with real-world prices (possibly with integrationwith SAP or other system). The optimizer could read current averagevalues, limits, and other required parameters from the controller 106,perturb the limits successively, and calculate the difference in anobjective function with each perturbation. The optimizer could then rankthe limits based on changes in the objective function's values andidentify/output the top issues (such as the top three to five issues).

In order to analyze data to identify tuning issues, a current objectivefunction value could be calculated after setting up PVO coefficients,and a final objective function value could be calculated after solvingthe optimizer without any other changes. The difference between the twovalues can be calculated and used as the lost opportunity cost due toimproper optimizer tuning.

In order to analyze data to identify inferential quality issues, along-term standard deviation of bias between laboratory/analyzer andpredicted values could be calculated. Using a rule of thumb orbenchmark, a percentage reduction in the standard deviation can beassumed, and the average shift can be calculated. A difference in theobjective function in the “digital twin” optimizer can then becalculated. The inferential predictability (based on laboratory/analyzervalues) versus T-statistic confidence bounds from a calibration data setcan be monitored, and an alert and recalibration activity can betriggered when a model prediction score falls outside of the acceptablebounds.

In order to analyze data to identify model quality issues, currentmodels used by a controller could be modified, or new models for thecontroller could be generated. A comparison could then be made toidentify whether the modified or new models better represent thebehavior of the industrial process 302. In order to analyze data toidentify operating mode issues, manipulated or controlled variablescould be added to or removed from a controller's control matrix, and adetermination could be made whether the modified control matrix improvescontroller performance.

The examples provided above are merely illustrative of the types ofanalyses that could occur using data about the industrial process 302and the control and automation system 304. Of course, any other oradditional analyses could also occur using this data.

Note that the analysis functionality could be deployed in various waysdepending on the implementation. For example, the analysis functionalitycould be accessed by workstations or other computing devices via a webserver. A batch execution engine could be used to execute variousanalysis routines, and an SQL or other database could be used to storeand retrieve data for the analysis routines. The data analyzed by theanalysis routines could be collected from UNIFIED REAL TIME (URT)platforms from HONEYWELL INTERNATIONAL INC., which could communicatedata using Object Linking and Embedding (OLE) for Process Control (OPC)for storage in one or more process historians. The workstations or othercomputing devices, web server, platforms, and other devices could resideon the same level of a control and automation system, different levelsof a control and automation system, or inside and outside a control andautomation system. Additional features can also be used to facilitatemore effective use of the analysis functionality. For instance, aknowledge repository could be used to capture knowledge from operationalexperiences and formalize the knowledge into engineering guidance notes,which can help to improve use and reduce troubleshooting efforts.Moreover, templates can be used to simplify analysis designs, a seedmodel library can be used to provide possible standard or customanalysis functions, and workflow support tools can be provided to guideless experience engineers or other users through the analysisimplementation process. Note, however, that these details relate tospecific implementations of the analysis functionality and that theanalysis functionality could be deployed in any other suitable manner.

Although FIG. 3 illustrates one example of a process 300 for identifyingand using impacts and causes of variability or control giveaway onmodel-based controller performance, various changes may be made to FIG.3. For example, the data used in the analyses could be collected fromany suitable source(s) and in any suitable manner. Also, the results ofthe analyses could be used in any suitable manner.

FIG. 4 illustrates an example technique for measuring model-basedcontroller performance according to this disclosure. In particular, FIG.4 illustrates an example technique for defining or measuring controlgiveaway, which can be used in the analyses mentioned above anddescribed in more detail below.

As shown in FIG. 4, a line 402 represents the distribution of aparticular process variable's value (such as a particular controlledvariable's value) over time without any model-based control. In thisexample, the line 402 defines a Gaussian distribution for the processvariable's value, although this need not be the case. A vertical line404 represents the average value of the process variable's value asdefined by the line 402. Another vertical line 406 represents aconstraint (such as an upper limit) placed on the process variable'svalue. In this case, given the Gaussian distribution and standarddeviation of the line 402, the constraint defined by the line 406 isviolated approximately 2.4% of the time. Assume that there is anincentive to increase the process variable's average value, but not atthe expense of increasing the percentage of time that the constraintdefined by the line 406 is violated.

A line 408 in FIG. 4 represents the distribution of the particularprocess variable's value after a successful implementation of amodel-based controller used to control the process variable. In thisexample, the line 408 defines a Gaussian distribution for the processvariable's value, although this need not be the case. A vertical line410 represents the average value of the process variable's value asdefined by the line 408. In this example, the standard deviation of theprocess variable's value has been reduced by about 50%, while the samepercentage of constraint violations has been maintained.

As noted above, the “control giveaway” is defined as the distance ordifference between an actual or average operating point of a model-basedcontroller and its associated constraint or control limit. In FIG. 4,for example, the control giveaway is initially defined as the distancebetween the lines 404 and 406. After successful model-based control, thecontrol giveaway narrows to the distance between the lines 408 and 406.

The control giveaway for a model-based controller is defined as afunction of the standard deviation of a process variable's value. Thus,the control giveaway could be defined as follows:

Control Giveaway=Limit−Average=Zσ  (1)

where Limit denotes the process variable's associated constraint,Average denotes the process variable's average value, a denotes thestandard deviation of the process variable's value, and Z denotes amultiplier (which could vary based on what risk an owner or operator ofan industrial process is willing to accept). Given this, the change inperformance that is obtained once a model-based controller issuccessfully implemented could be defined as follows:

$\begin{matrix}{\frac{{Control}\mspace{14mu} {Giveaway}_{after}}{{Control}\mspace{14mu} {Giveaway}_{before}} = {Z\left( \frac{\sigma_{after}}{\sigma_{before}} \right)}} & (2)\end{matrix}$

The impact of using the model-based controller could therefore beevaluated based on the percentage of time that there is an incentive tooptimize the process variable to its constraint or control limit.

Note that the behavior shown by the lines 408 and 410 in FIG. 4 mayexist immediately after the model-based controller has been implemented.However, as described above, the benefits that can be obtained usingmodel-based controllers often decline over time. As a result, theprocess variability and the control giveaway may change due to a numberof factors. Example factors could include changes to the amplitudes andfrequencies of external disturbances, such as changes due to ambientconditions or equipment issues. Equipment issues could include valvesthat stick, orifice plate meters that measure outside their accurateranges, or control loops that are poorly tuned. Example factors couldalso include changes in process operations that cause instability withinan industrial process. Example factors could further include degradedcontroller performance due to the presence of process noise andprocess-model mismatch. As a result, the improvement in the controlgiveaway shown in FIG. 4 can be reduced over time.

As described in more detail below, this disclosure provides techniquesfor detecting changes in process variability or control giveawayindependent of the type of process variable value distribution or themodel-based controller tuning. Instead, these techniques use acomparison between benchmarked and current closed-loop model-basedcontroller performance, as well as mechanisms to help identify andunderstand possible causes of performance variations or controlgiveaway.

In general, these techniques involve determining a measure of the actualvariability or control giveaway for each controlled variable duringtimes when a controller has pushed that controlled variable to a limit(such as an upper or lower constraint). During those times, the standarddeviation of each controlled variable's predicted value is determined,and Equation (1) is used to provide estimates of the values of Z. In anygiven analysis period, there may only be a few or no time periods whenthis analysis can be completed. However, over the longer term, estimatesof Z can be determined and adapted to reflect the tuning of themodel-based controller and the process noise distribution. Equation (1)can then be used to estimate the current control giveaway based on acurrent estimate of the standard deviation and the historical estimateof Z. This current control giveaway can be used (relative to a benchmarkcase) to assess lost economic opportunities or other lost opportunitiesassociated with the model-based controller.

Although FIG. 4 illustrates one example of a technique for measuringmodel-based controller performance, various changes may be made to FIG.4. For example, the lines shown in FIG. 4 and the process variablevalues and constraints associated with those lines are for illustrationonly. Process variables could have any other suitable values, and anyother suitable constraints (including upper and/or lower constraints)could be used with each process variable.

FIG. 5 illustrates an example method 500 for identifying impacts andcauses of variability or control giveaway on model-based controllerperformance according to this disclosure. For ease of explanation, themethod 500 is described as being performed by the device 200 of FIG. 2implementing an operator console 110, server 116, or device used in thecomputing cloud 118 of FIG. 1. However, the method 500 could be usedwith any suitable device and in any suitable system.

As shown in FIG. 5, a benchmark measure of control giveaway for amodel-based process controller is determined at step 502. This couldinclude, for example, the processor 202 of the device 200 performing theoperations described below to calculate the control giveaway for amodel-based controller 106. The benchmark measure of control giveawayfor the controller 106 could be determined during or shortly aftercommissioning or re-tuning of the controller 106 or at other times whenthe controller 106 is known or believed to be operating properly.

Data identifying the values of a controlled variable over time for thecontroller is obtained at step 504. This could include, for example, theprocessor 202 of the device 200 receiving the controlled variable valuesdirectly from the model-based controller 106 or indirectly, such as viaa historian 114, server 116, or gateway 120. This could also include theprocessor 202 of the device 200 pre-processing the data, such as tovalidate the obtained data and discard any portions of the obtained datadeemed invalid. In some embodiments, the data can be validated by usingpredictions generated by the model-based controller 106 to identifyvalid or invalid data, retaining any valid data, and discarding anyinvalid data. Note that when the data is obtained by a device that isremote from the controller 106 or other data source, the data can betransmitted to the device securely and in real-time, near real-time, ornon-real-time depending on the embodiment.

The data can be processed continuously, periodically, or at othersuitable times to assess the variability of the controller's controlledvariable and the control giveaway of the controller 106. In thisexample, this processing occurs as follows. Time periods where themodel-based controller moved the controlled variable to an associatedlimit are identified at step 506. This could include, for example, theprocessor 202 of the device 200 identifying a start of a period as thefirst time or interval when the value of the controlled variable is atan associated limit, such as an upper or lower constraint. This couldalso include the processor 202 of the device 200 identifying an end ofthe period as the first time or interval when the value of thecontrolled variable is not at the associated limit. The identified timeperiods denote intervals where the model-based controller 106successfully pushed the controlled variable to its constraint.

An identified time period is selected at step 508, and the standarddeviation of predicted values for the controlled variable is determinedat step 510. This could include, for example, the processor 202 of thedevice 200 selecting the first identified time period when thecontroller 106 pushed the controlled variable to the associated limit.This could also include the processor 202 of the device 200 using adigital twin of the controller's optimizer to generate the predictedvalues of the controlled variable within that time period andcalculating the standard deviation of those predicted values. A controlgiveaway value is determined based on the standard deviation at step512. This could include, for example, the processor 202 of the device200 identifying an offset between the controlled variable's averagevalue and the associated limit based on the standard deviation. If thereis another time period to be examined at step 514, the process returnsto step 508 to select and analyze the next time period.

Otherwise, the variance of the controlled variable is determined usingthe control giveaway values at step 516. This could include, forexample, the processor 202 of the device 200 using Equation (1) above tocalculate the control giveaway for the controlled variable. Possibleimpacts resulting from the controlled variable variance or controlgiveaway and/or possible causes of the controlled variable variance orcontrol giveaway are identified at step 518. This could include, forexample, the processor 202 of the device 200 analyzing data to identifywhich process variables or other causes might be creating the varianceor control giveaway in the controller's controlled variable. This couldalso include the processor 202 of the device 200 analyzing data toidentify the impacts of the variance or control giveaway in thecontrolled variable on material usage, energy usage, or economic factorsrelated to an industrial process. Note that a comparison of the currentcontrol giveaway to the benchmarked control giveaway can occur here inorder to identify the differences between the controller's currentoperations and the controller's prior benchmarked operations (whichprovide a measure of how the controller's operations could be improved).A graphical display identifying one or more impacts or causes for thevariance or control giveaway is generated and presented to one or moreusers at step 520. This could include, for example, the processor 202 ofthe device 200 generating a graphical user interface that identifies thepossible impacts and/or possible causes of the process variability orcontrol giveaway in a control-relevant context.

Note that the process shown in FIG. 5 could be used to process data forone controlled variable or for multiple controlled variables (eithersequentially or in parallel). In this way, the method 500 can be used toidentify process variability in one or more controlled variables and thecontrol giveaway resulting from that process variability. The processvariability or control giveaway could then be analyzed to identifypotential causes or impacts, and at least one visualization can begenerated for one or more users identifying the potential causes orimpacts. Ideally, this information can be used to help take one or moreactions that reduce the process variability or control giveaway andthereby reduce the impacts of that process variability or controlgiveaway, which improves the operation of the model-based controller(s)as well as the underlying industrial process(es).

Although FIG. 5 illustrates one example of a method 500 for identifyingimpacts and causes of variability or control giveaway on model-basedcontroller performance, various changes may be made to FIG. 5. Forexample, while shown as a series of steps, various steps in FIG. 5 couldoverlap, occur in parallel, occur in a different order, or occur anynumber of times.

FIG. 6 illustrates an example method 600 for processing data to identifyimpacts and causes of variability or control giveaway on model-basedcontroller performance according to this disclosure. More specifically,the method 600 could represent a specific implementation of part of themethod 500 in which data associated with a model-based controller isanalyzed. For ease of explanation, the method 600 is described as beingperformed by the device 200 of FIG. 2 implementing an operator console110, server 116, or device used in the computing cloud 118 of FIG. 1.However, the method 600 could be used with any suitable device and inany suitable system.

As shown in FIG. 6, a start and an end of an analysis period areidentified at step 602. This could include, for example, the processor202 of the device 200 determining the period during which dataassociated with a model-based controller 106 will be analyzed. Anysuitable period of time could be identified here, such as a particularday, week, month, or other period of time. A controlled variable for thecontroller is selected at step 604. This could include, for example, theprocessor 202 of the device 200 selecting one of the controlledvariables that the controller 106 is responsible for controlling. Valuesof the selected controlled variable within the identified analysisperiod are obtained, validated, and filtered at step 606. This couldinclude, for example, the processor 202 of the device 200 removing anygross instrument errors from the data, which may give false indicationsof controlled variable variability. One example technique for validatingand filtering controlled variable values is shown in FIGS. 7A and 7B,which are described below.

Episodes where the selected controlled variable is limiting areidentified and an estimate of the standard deviation of the selectedcontrolled variable during the analysis period is identified at step608. This could include, for example, the processor 202 of the device200 analyzing the data during the analysis period to identify times whenthe optimizer of the model-based controller 106 is constraining theselected controlled variable at a hard or soft limit. As noted above,the device 200 could use a digital twin of the controller's optimizer toperform this operation. This could also include the processor 202 of thedevice 200 calculating the standard deviation of the selected controlledvariable's values during the analysis period. One example technique foridentifying the episodes and calculating the standard deviation is shownin FIGS. 8A through 8C, which are described below.

The control giveaway and the standard deviation of the controlledvariable are determined for each identified episode at step 610. Thiscould include, for example, the processor 202 of the device 200estimating the average distance or control giveaway between the averagevalue of the selected controlled variable and its hard or soft limitduring each identified episode. This could also include the processor202 of the device 200 using the estimated control giveaway to calibratea standard deviation-based measure of the offset between the constraintand the average value of the selected controlled variable. The controlgiveaway during each identified episode can be calculated using Equation(1) above. This approach allows the calculation of the control giveawayto adapt over time, making it less variant or invariant to noisedistribution profiles or controller tunings. One example technique foridentifying the control giveaway and the standard deviation of acontrolled variable during each episode is shown in FIGS. 9A through 9C,which are described below.

The control giveaway values could be updated based on the standarddeviation for the controlled variable during the entire analysis periodat step 612. This could include, for example, the processor 202 of thedevice 200 scaling the calculated control giveaway values based on acomparison of the standard deviation of the controlled variable duringthe identified episodes to the standard deviation of the controlledvariable during the entire analysis period.

Causes of the variance in the controlled variable's values and/or thecontrol giveaway of the controlled variable are identified at step 614.This could include, for example, the processor 202 of the device 200analyzing data to identify what might be creating the variance in thecontrolled variable's values or what might be creating the controlgiveaway. In some embodiments, the variance contributions of measuredand unmeasured effects can be calculated as standard deviations. Oneexample technique for identifying the possible causes of processvariable variance and/or control giveaway is shown in FIG. 10, which isdescribed below.

If there is another controlled variable to be processed at step 616, theprocess returns to step 604 to select another controlled variable.Otherwise, at least one visualization of the results is generated andoutput at step 618. This could include, for example, the processor 202of the device 200 generating a graphical user interface that enables auser to drill-down from an overview display to explore root causes ofprocess variance or control giveaway for one or more of the controlledvariables. One example of the graphical user interface is describedbelow, although as noted above various types of graphical userinterfaces could be used.

Although FIG. 6 illustrates one example of a method 600 for processingdata to identify impacts and causes of variability or control giveawayon model-based controller performance, various changes may be made toFIG. 6. For example, while shown as a series of steps, various steps inFIG. 6 could overlap, occur in parallel, occur in a different order, oroccur any number of times.

FIGS. 7A and 7B illustrate an example method 700 for validating andfiltering a process variable's value according to this disclosure. Themethod 700 could, for example, be performed during step 606 in themethod of FIG. 6. For ease of explanation, the method 700 is describedas being performed by the device 200 of FIG. 2 implementing an operatorconsole 110, server 116, or device used in the computing cloud 118 ofFIG. 1. However, the method 700 could be used with any suitable deviceand in any suitable system.

To summarize the method 700, a controlled variable's value can bechecked against high and low sensible engineering bounds, a “bad” signalas reported by a control system, a high rate-of-change limit, and aminimum rate-of-change limit. The sensible engineering bounds canrepresent high and low limits based on the normal operating envelope ofthe controlled variable or a range that is slightly wider than thenormal operating envelope. These bounds are typically more conservativethan the instrument range for the actual equipment in an industrialprocess. The “bad” signal represents a signal that many control systemsare able to generate and simply indicates that the current value of thecontrolled variable is invalid. Most process variables changesignificantly more slowly than the responsiveness of the processmeasurements because of process dynamics, so the high rate-of-changelimit can be used to identify changes that occur excessively fast.Similarly, most process variables exhibit some movement due to processdisturbances and control actions, so a completely static measurementvalue could indicate an instrumentation failure. During this process,the validation approach here uses a controller's predictions in order todetect valid and invalid data. For example, if a measured controlledvariable value is above the sensible high engineering limit but isactually predicted by the controller within some tolerance, the data canbe considered valid. If a measurement rate-of-change is high butpredicted by the controller, the data can be considered valid. If ameasurement value appears to be frozen but the predicted value isinvariant, the data can be considered valid.

As shown in FIGS. 7A and 7B, start and end intervals of an analysisperiod are selected at step 702. This could include, for example, theprocessor 202 of the device 200 identifying the sampling or controlinterval that occurs at the beginning of the analysis period previouslyidentified in step 602 and the sampling or control interval that occursat the end of the analysis period previously identified in step 602. Thestart and end intervals define the total number of intervals to beexamined.

Various values are initialized at step 704. This could include, forexample, the processor 202 of the device 200 initializing an Intervalvalue, which is used to represent the specific sampling or controlinterval being examined. This could also include the processor 202 ofthe device 200 initializing an IsBad flag, which is used to identifywhether data during the specific sampling or control interval is validor invalid. This could further include the processor 202 of the device200 initializing a ValidCount value, which is used to count the numberof intervals containing valid data. In addition, this could include theprocessor 202 of the device 200 initializing a ValStatus array, which isused to identify whether each sampling or control interval containsvalid or invalid data.

Tuning data for a specific controlled variable is obtained at step 706.This could include, for example, the processor 202 of the device 200obtaining high and low limits (denoted ValHiLimit and ValLoLimit) forthe controlled variable, which identify the upper and lower constraintsplaced on the controlled variable. This could also include the processor202 of the device 200 obtaining a maximum rate-of-change limit (denotedValROCLimit) for the controlled variable, which identifies how fast thecontrolled variable is allowed to change. This could further include theprocessor 202 of the device 200 obtaining a hold time value (denotedHoldTime), which identifies a consecutive number of sampling or controlintervals during which valid data should exist before the intervals areactually identified as containing valid data. This can help to avoididentifying short bursts of data as being valid. This could also includethe processor 202 of the device 200 obtaining a frozen tolerance value(denoted ValFrzTol) and a frozen time value (denoted ValFrzTim), whichidentify values used to determine whether unchanging values of thecontrolled variable are acceptable or indicative of invalid data. Thiscould further include the processor 202 of the device 200 obtaining aprediction error limit (denoted CVPredErrLimit), which identifies amaximum allowable error between actual and predicted values of thecontrolled variable for data to be valid. In addition, this couldinclude the processor 202 of the device 200 obtaining a filter factorvalue (denoted FiltFac), which identifies how controlled variable valuesare filtered over time. This data could be obtained from any suitablesource(s), such as directly from the model-based controller 106 orindirectly, such as via a historian 114, server 116, or gateway 120.

Controlled variable data for the current interval (as defined by theInterval value) is obtained at step 708. This could include, forexample, the processor 202 of the device 200 obtaining the actual valueof the controlled variable during the current interval (denotedCV.ReadValue) and the predicted value of the controlled variable duringthe current interval (denoted CV.PredictedValue). The actual value ofthe controlled variable could be based on a sensor measurement or aninferential calculation. The predicted value of the controlled variablecould be obtained from a controller or calculated using a digital twinof the controller's optimizer. A prediction error is calculated at step710. This could include, for example, the processor 202 of the device200 calculating the absolute value of the difference betweenCV.ReadValue and CV.PredictedValue.

In step 712, a determination is made whether the control system hasflagged the actual value of the controlled variable during the currentinterval as being invalid. In step 714, a determination is made whetherthe actual value of the controlled variable during the current intervalexceeds its upper limit and whether the prediction error exceeds theprediction error limit (since it may be possible that exceeding theupper limit is expected). In step 716, a determination is made whetherthe actual value of the controlled variable during the current intervalfalls below its lower limit and whether the prediction error exceeds theprediction error limit (since it may be possible that falling below thelower limit is expected). If any of these conditions is true, the IsBadflag is set to true in order to indicate that the current intervalcontains invalid data at step 718, and the process skips to step 740.These steps can be performed by the processor 202 of the device 200using the various data values introduced above.

If none of these conditions is true, the current interval may containvalid data. A check is made whether the IsBad flag is set to true atstep 720. Note that during the first iteration, the IsBad flag is trueas shown in step 704, but the IsBad flag could be false duringsubsequent iterations. Assuming this is the first iteration or the IsBadflag was set to true during a prior iteration, various values areassigned at step 722. This could include, for example, the processor 202of the device 200 setting a last read value (denoted LastReadValue) ofthe controlled variable to equal the current actual value of thecontrolled variable and setting a last predicted value (denotedLastPredictedValue) of the controlled variable to equal the currentpredicted value of the controlled variable. This could also include theprocessor 202 of the device 200 setting the IsBad flag to false andassigning a last filtered value (denoted LastFilVal) of the controlledvariable to the current actual value of the controlled variable. Thiscould further include the processor 202 of the device 200 assigning avalue of zero to a frozen counter (denoted FrzTimCount), a frozen changevalue (denoted FrzChange), a predicted frozen change value (denotedPredFrzChange), and a hold counter (denoted HoldCount). These operationsare performed since the current interval is possibly the first intervalin a series of intervals containing valid data.

Otherwise, various values are calculated at step 724. This couldinclude, for example, the processor 202 of the device 200 calculating arate-of-change value (denoted ROC) of the controlled variable as theabsolute value of the difference between the last read value of thecontrolled variable and the current actual value of the controlledvariable. This could also include the processor 202 of the device 200calculating a predicted rate-of-change value (denoted PredROC) of thecontrolled variable as the absolute value of the difference between thelast predicted value of the controlled variable and the currentpredicted value of the controlled variable. A prediction error for therate-of-change (denoted CVROCPredErr) can be calculated as the absolutevalue difference between the ROC and PredROC values. The frozen changevalue is updated by adding the ROC value to the frozen change value, thepredicted frozen change value is updated by adding the CVROCPredErrvalue to the predicted frozen change value, and the frozen counter isincremented. The last read value of the controlled variable is set toequal the current actual value of the controlled variable, and a currentfiltered value (denoted Filtered Val) of the controlled variable iscalculated using the filter factor, the last filtered value, and thecurrent actual value of the controlled variable. These operations areperformed since the current interval is possibly a subsequent or finalinterval in a series of intervals containing valid data.

A determination is made whether the rate-of-change exceeds therate-of-change limit and if the rate-of-change prediction error exceedsthe error limit at step 726. This is done because it is possible thatthe measurement rate-of-change is high but is predicted, in which casethe data can still be considered valid. If not, the process skips tostep 740.

Otherwise, the process proceeds to step 728, where a determination ismade whether the frozen change value exceeds the frozen tolerance value.If so, this indicates that the controlled variable's value is changingby some amount, so an equipment fault or other fault has not resulted ina frozen controlled variable value. In this case, the frozen counter andthe frozen change value are reset to zero at step 730. A determinationis made whether the frozen counter exceeds the frozen time value andwhether the predicted frozen change value exceeds the frozen tolerancevalue at step 732. If both conditions are met, this is indicative thatthe controlled variable's value has frozen and that the freezing was notpredicted. In that case, the process skips to step 740. Otherwise, anyfreezing of the controlled variable's value (if it is occurring) ispredicted, so the current interval does contain valid data.

The ValidCount value is incremented at step 734, and a determination ismade whether the ValidCount value exceeds the hold time value at step736. If so, there have been an adequate number of consecutive validintervals, so various values associated with the current interval areset at step 738. This could include, for example, the processor 202 ofthe device 200 marking the current interval as containing valid data,setting a current filtered value for the interval to the filtered value,and setting the ValidCount value to the hold time value. Conversely,during step 740 when there is invalid data in the current interval, theprocessor 202 of the device 200 could mark the current interval ascontaining invalid data, set the current filtered value for the intervalto the filtered value, and set the ValidCount value to zero.

A determination is made whether the current interval is the lastinterval of the analysis period at step 742. If not, the Interval valueis incremented at step 744 to select the next interval to be analyzed,and the process returns to step 708. Otherwise, the process ends. Thefinal results of the method 700 include a set of indicators thatidentify which intervals of the analysis period contain valid dataand/or invalid data.

FIGS. 8A through 8C illustrate an example method 800 for determiningepisodes when a process variable's value is limiting and for estimatingthe process variable's standard deviation according to this disclosure.The method 800 could, for example, be performed during step 608 in themethod of FIG. 6. For ease of explanation, the method 800 is describedas being performed by the device 200 of FIG. 2 implementing an operatorconsole 110, server 116, or device used in the computing cloud 118 ofFIG. 1. However, the method 800 could be used with any suitable deviceand in any suitable system.

To summarize the method 800, a controlled variable's measurements areanalyzed to identify episodes when a controller's optimizer constrainsthe controlled variable's steady-state (SS) value at a hard or softlimit. This information can be used for two purposes. First, it can beused to scale a lost opportunity cost or other value associated with thecontrolled variable's variability down to a percentage of time that thecontrolled variable is at an active constraint. Second, it can be usedto identify specific time windows (episodes) for further analysis. Forcomputational efficiency, the standard deviation of the controlledvariable's predicted value can be estimated as the process iterates overa data set. The predicted value (the biased-corrected controlledvariable prediction) can be used in preference to the actual controlledvariable value because its variance directly impacts the controlgiveaway.

In this example, three tuning factors are used to identify constrainedcontrolled variable episodes. These tuning factors include a Delay_Onvalue, a Delay_Off value, and a Min_Gap value. The Delay_On valueidentifies the minimum number of consecutive intervals for which acontrolled variable is at a hard or soft limit before the controlledvariable is deemed to be limiting. This tuning factor can help tomitigate the impacts of noise and transients in the optimizationsolution. When this check is passed, the first interval of thecontrolled variable limitation is deemed to be the start of the episode.The Delay_Off value identifies the minimum number of consecutiveintervals for which the controlled variable is unconstrained before thecontrolled variable is deemed to not be limiting. This tuning factor canhelp to reduce the likelihood of process noise triggering multiplesequential episodes, which can be better described as a singleconsolidated episode. When this check is passed, the first interval ofan unconstrained controlled variable is deemed to be the end of theepisode. The Min_Gap value identifies a minimum gap between high and lowoptimization limits and could be based on hard or soft limits. Note thatif an operator-configured gap is less than this limit or a controlledvariable has a setpoint, part of the analysis can be skipped.

As shown in FIGS. 8A through 8C, start and end intervals of an analysisperiod are selected at step 802. This could include, for example, theprocessor 202 of the device 200 identifying the sampling or controlinterval that occurs at the beginning of the analysis period previouslyidentified in step 602 and the sampling or control interval that occursat the end of the analysis period previously identified in step 602.Note, however, that the same intervals identified in step 702 could beused here.

Various values are initialized at step 804. This could include, forexample, the processor 202 of the device 200 initializing an Intervalvalue, which is used to represent the specific sampling or controlinterval being examined. This could also include the processor 202 ofthe device 200 initializing D_On_Count and D_Off_Count values, which areused respectively to count the numbers of intervals in which acontrolled variable is and is not at an associated constraint. Thiscould further include the processor 202 of the device 200 initializingan episode number (denoted EpisodeNum), which is used to identify acurrent episode being examined. This could also include the processor202 of the device 200 initializing an active limit value (denotedActive_Lim), which is used to identify any limit against which acontrolled variable has been moved. In addition, this could include theprocessor 202 of the device 200 initializing SumRV, SumRVSqd, Count,CountHi, and CountLo values to zero. These values are used as describedbelow to calculate various statistics associated with an episode.

Threshold tuning data for a controlled variable is obtained at step 806.This could include, for example, the processor 202 of the device 200obtaining the Delay_On, Delay_Off and Min_Gap values associated with aspecific controlled variable used by a model-based controller 106. Thisdata could be obtained from any suitable source(s), such as directlyfrom the model-based controller 106 or indirectly, such as via ahistorian 114, server 116, or gateway 120.

Controlled variable data for the current interval (as defined by theInterval value) is obtained at step 808. This could include, forexample, the processor 202 of the device 200 obtaining a steady-statevalue of the controlled variable (denoted SSValue), the controlledvariable's status during the current interval (denoted ValStatus asidentified using the method 700), and the controlled variable'spredicted value during the current interval (denoted PredictedValue).This could also include the processor 202 of the device 200 obtainingconstraint information for the controlled variable, such as a constrainttype (denoted Constrainttype), high limit (denoted HighLimit), low limit(denoted LowLimit), delta high soft limit (denoted DeltaHighSoftLimit),and delta low soft limit (denoted DeltaLowSoftLimit). This data could beobtained from any suitable source(s), such as directly from themodel-based controller 106 or indirectly, such as via a historian 114,server 116, or gateway 120. At least some of this data could also beobtained using the digital twin of the controller's optimizer.

A controlled variable gap (denoted CVGap) is calculated at step 810.This could include, for example, the processor 202 of the device 200identifying the maximum of zero and(HighLimit−LowLimit−DeltaHighSoftLimit−DeltaLowSoftLimit). Adetermination is made whether the constraint type indicates that thecontrolled variable has a setpoint (a value of “3” in this example) orwhether the calculated gap is less than the Min_Gap value at step 812.If either condition is true, the process skips to step 852.

Otherwise, a determination is made whether the constraint type isgreater than zero (indicating that the relevant constraint is an upperconstraint) at step 814. If so, the CountHi value is incremented at step816. A determination is made whether the active limit of the controlledvariable is set to “Hi” at step 818, meaning the current intervalfollows an interval in which it was already determined that thecontrolled variable was at its upper constraint. If so, an Off_Countvalue is set to an Off_Delay value at step 820. Otherwise, adetermination is made whether the active limit of the controlledvariable is set to “Lo” at step 822. If so, this indicates that thecontrolled variable has switched from being against its lower constraintto being against its upper constraint, and the process skips to step844. If not, a determination is made whether an On_Count value hasreached or exceeded a Delay_On value at step 824, which indicateswhether an adequate number of consecutive intervals has been detectedwith the controlled variable against its upper constraint. If not, theprocess skips to step 842 to increment the On_Count value. Otherwise,the start of an episode has been detected, and various values for theepisode are identified at step 826. This could include, for example, theprocessor 202 of the device 200 setting the Active_Lim value to “Hi” andsetting the Off_Count value to the Off_Delay value. This could alsoinclude the processor 202 of the device 200 identifying the start of thecurrent episode as the value of the current interval minus the Delay_Onvalue and setting a “sign” of the current episode to “Hi” (indicatingthat an upper constraint has been reached).

If the constraint type is not greater than zero at step 814, adetermination is made whether the constraint type is less than zero atstep 828 (indicating that the relevant constraint is a lowerconstraint). If not, this indicates that the controlled variable isunconstrained, and the process skips to step 844. If so, the CountLovalue is incremented at step 830. A determination is made whether theactive limit of the controlled variable is set to “Lo” at step 832,meaning the current interval follows an interval in which it was alreadydetermined that the controlled variable was at its lower constraint. Ifso, the Off_Count value is set to the Off_Delay value at step 834.Otherwise, a determination is made whether the active limit of thecontrolled variable is set to “Hi” at step 836. If so, this indicatesthat the controlled variable has switched from being against its upperconstraint to being against its lower constraint, and the process skipsto step 844. If not, a determination is made whether the On_Count valuehas reached or exceeded the Delay_On value at step 838, which indicateswhether an adequate number of consecutive intervals has been detectedwith the controlled variable against its lower constraint. If not, theprocess skips to set 842 to increment the On_Count value. Otherwise, thestart of an episode has been detected, and various values for theepisode are identified at step 840. This could include, for example, theprocessor 202 of the device 200 setting the Active_Lim value to “Lo” andsetting the Off_Count value to the Off_Delay value. This could alsoinclude the processor 202 of the device 200 identifying the start of thecurrent episode as the value of the current interval minus the Delay_Onvalue and setting a “sign” of the current episode to “Lo” (indicatingthat a lower constraint has been reached).

Step 844 can be reached via any of the determinations at steps 822, 828,and 836. At step 844, a determination is made whether the Active_Limvalue is set to “none”. If so, the On_Count value is reset to zero atstep 852. Otherwise, a determination is made whether the Off_Count valueis less than or equal to zero at step 846. If not, the Off_Count valueis decremented at step 848. Otherwise, the end of apreviously-identified episode has been detected, and various values forthe episode are identified at step 850. This could include, for example,the processor 202 of the device 200 resetting the Active_Lim value tonone and resetting the On_Count value to zero. This could also includethe processor 202 of the device 200 identifying the end of the currentepisode as the value of the current interval minus the Delay_Off valueand incrementing the episode number.

Step 854 can be reached via any of steps 820, 826, 834, 840, 842, 848,and 850. At step 854, a determination is made whether the status duringthe current interval is valid. If so, values are updated for the currentinterval at step 856. This could include, for example, the processor 202of the device 200 incrementing the Count value, adding the predictedvalue of the controlled variable to the current SumRV value, and addingthe squared predicted value of the controlled variable to the currentSumRVSqd value. The Interval value is incremented at step 858.

A determination is made whether the current interval is the lastinterval of the analysis period at step 860. If not, the process returnsto step 808 to collect information about the next interval. Otherwise, adetermination is made whether the Active_Lim value is true (“Hi” or“Lo”) at step 862, which would indicate that the analysis period endedwith the controlled variable against its upper or lower constraint. Ifnot, the total number of episodes detected (denoted NumEpisodes) is setequal to EpisodeNum minus one at step 864. Otherwise, various values forthe current episode are determined at step 866. This could include, forexample, the processor 202 of the device 200 setting the end of thecurrent episode to the current interval and setting the total number ofepisodes detected to EpisodeNum.

A standard deviation for the controlled variable during all intervalswith valid data is determined at step 868. This could include, forexample, the processor 202 of the device 200 calculating the standarddeviation using the SumRV, SumRVSqd, and Count values. The final resultsof the method 800 include a set of constraint-limited controlledvariable episodes and the controlled variable's standard deviationduring those episodes.

FIGS. 9A through 9C illustrate an example method 900 for determining aprocess variable's control giveaway and standard deviation duringlimiting episodes according to this disclosure. The method 900 could,for example, be performed during step 610 in the method of FIG. 6. Forease of explanation, the method 900 is described as being performed bythe device 200 of FIG. 2 implementing an operator console 110, server116, or device used in the computing cloud 118 of FIG. 1. However, themethod 900 could be used with any suitable device and in any suitablesystem.

To summarize the method 900, the process iterates through the episodesidentified above where a controlled variable is constrained at its upperor lower limit. For each episode, the process selects a time window inwhich to analyze a model-based controller's behavior. The window couldstart at a configurable multiple of the controller's closed-loopresponse time after the beginning of an episode, and the window couldend upon completion of the episode. This compensates for thecontroller's transition time so that the controlled variable's value canmove towards a steady-state target. If the time window has somecontrolled variable samples, the process iterates through the data andcalculates the standard deviation of the controlled variable's predictedvalue (when the measurements are valid) and the average distance betweenthe controlled variable's actual value and its steady-state value(referred to as the controlled variable's “slack”). If there are anyvalid episodes, the standard deviation factor Z for Equation (1) abovecan be estimated, such as by using Equation (3) as follows:

$\begin{matrix}{Z = \frac{AverageSlack}{\sigma_{predVal}}} & (3)\end{matrix}$

A historical estimate of the Z value for both high and low limits can becalculated, such as by using an exponentially-weighted filtered averageof past Z estimates. Equation (1) can then be used to estimate thecontrolled variable's giveaway based on the standard deviation of thecontrolled variable's predicted value and the historical estimate of theZ factor. Note that the value of a controlled variable (the predictedvalue) used within a controller is the summation of a number ofindependent variable changes, as well as a bias correction based on themeasured process value.

As shown in FIGS. 9A through 9C, configuration data for a controlledvariable is obtained at step 902. This could include, for example, theprocessor 202 of the device 200 obtaining the closed-loop response timeof a selected controlled variable. This data could be obtained from anysuitable source(s), such as directly from the model-based controller 106or indirectly, such as via a historian 114, server 116, or gateway 120.An episode number (denoted EpNum) is initialized to zero at step 904,which results in the selection of the first episode identified earlier.

Various values are determined to define a time window for the currentepisode at step 906. This could include, for example, the processor 202of the device 200 defining the start of the time window (denotedStartInt) as the start of the episode identified above plus somemultiple (K1) of the controller's closed-loop response time. The K1multiplier could be user-defined or set in any other suitable manner.This could also include the processor 202 of the device 200 defining theend of the time window (denoted EndInt) as the end of the episodeidentified above.

A determination is made whether the identified end of the time windowoccurs before the identified start of the time window at step 908, whichif true would be indicative of a time window that is too short. If thatcondition is met, the process skips to step 954. Otherwise, variousvalues are determined to begin the analysis at step 910. This couldinclude, for example, the processor 202 of the device 200 setting anInterval value to the StartInt value, which causes the first intervalwithin the time window to be at the beginning of the time window. Thiscould also include the processor 202 of the device 200 initializingSumGiveAway, SumPV, SumPVSqd, Count, CountOutSL, and CountAdaptSL valuesto zero.

Controlled variable data for the current interval (as defined by theInterval value) is obtained at step 912. This could include, forexample, the processor 202 of the device 200 obtaining the controlledvariable's status, steady-state value, predicted value, actual value,constraint type, high limit, low limit, delta high soft limit, delta lowsoft limit, and adaptive soft limits. This data could be obtained fromany suitable source(s), such as directly from the model-based controller106 or indirectly, such as via a historian 114, server 116, or gateway120. At least some of this data could also be obtained using the digitaltwin of the controller's optimizer.

A determination is made whether data for the current interval is validat step 914. If not, the process skips to step 934. Otherwise, adetermination is made whether the current interval is associated with anupper or lower constraint at step 916. If the constraint is an upperconstraint at step 916, various values are calculated at step 918. Thiscould include, for example, the processor 202 of the device 200 settinga DeltaSoftLimit value to the DeltaHighSoftLimit value and calculating aLimit value as the HighLimit value minus the DeltaSoftLimit value. Adetermination is made whether the high soft limit is adaptive at step920, which would indicate that the high soft limit value could vary overtime. If so, the CountAdaptSL value is incremented at step 926. If theconstraint is a lower constraint at step 916, various values arecalculated at step 922. This could include, for example, the processor202 of the device 200 setting a DeltaSoftLimit value to theDeltaLowSoftLimit value and calculating a Limit value as the LowLimitvalue plus the DeltaSoftLimit value. A determination is made whether thelow soft limit is adaptive at step 924, which would indicate that thelow soft limit value could vary over time. If so, the CountAdaptSL valueis incremented at step 926.

At step 928, various additional values are calculated. This couldinclude, for example, the processor 202 of the device 200 incrementingthe Count value and setting a GiveAway value to the absolute value ofthe difference between the controlled variable's actual value and itsconstraint or limit. This could also include the processor 202 of thedevice 200 adding the GiveAway value to the SumGiveAway value and addingthe controlled variable's predicted value to the SumPV value. This couldfurther include the processor 202 of the device 200 adding the squaredpredicted value of the controlled variable to the SumPVSqd value. Adetermination is made whether the GiveAway value meets or exceeds theDeltaSoftLimit value at step 930. If so, the CountOutSL value isincremented at step 932. The Interval value is incremented at step 934,and a determination is made whether the last interval in the time windowhas been processed at step 936. If not, the process returns to step 912to obtain and analyze data for the next interval in the time window.

Otherwise, a determination is made whether the Count value exceeds aminimum value (denoted MinN) at step 938. If not, the current episode isdiscarded, and the process skips to step 954. Otherwise, variousstatistics are calculated for the current episode at step 940. Thiscould include, for example, the processor 202 of the device 200calculating the standard deviation for the controlled variable's valueduring the current episode and the average control giveaway for thecontrolled variable's value during the current episode. This could alsoinclude the processor 202 of the device 200 calculating the percentageof time that the controlled variable operated with an adaptive limit andthe percentage of time that the controlled variable operated with a softlimit being violated.

A determination is made whether either of the percentages calculated inthe prior step exceeds some threshold A or B at step 942. If so, thestandard deviation factor Z for the episode is calculated as the averagegiveaway during that episode divided by the controlled variable'sstandard deviation during that episode at step 944. If not, the standarddeviation factor Z for the episode is calculated as the delta soft limitduring that episode divided by the controlled variable's standarddeviation during that episode at step 946. A determination is madewhether the current episode is associated with an upper or lowerconstraint at step 948. If associated with an upper constraint, thestandard deviation factor Z_(HI) for the upper constraint during thatepisode is set equal to Z at step 950. Otherwise, the standard deviationfactor Z_(LO) for the lower constraint during that episode is set equalto Z at step 952.

The episode number is incremented at step 954, and a determination ismade whether there are additional episodes to process at step 956. Ifso, the process returns to step 906 to collect and analyze informationassociated with the next episode. Otherwise, the process ends. The finalresults of the method 900 include the estimated Z value for eachepisode.

FIG. 10 illustrates an example method 1000 for identifying causes of aprocess variable's variance according to this disclosure. The method1000 could, for example, be performed during step 614 in the method ofFIG. 6. For ease of explanation, the method 1000 is described as beingperformed by the device 200 of FIG. 2 implementing an operator console110, server 116, or device used in the computing cloud 118 of FIG. 1.However, the method 1000 could be used with any suitable device and inany suitable system.

To summarize the method 1000, contributory causes to variance and/orcontrol giveaway in a controlled variable are identified. The standarddeviation of each of these contributory causes can be estimated over theselected timeframe in FIG. 10 and used as the contribution of that causeto the controlled variable's variance and/or control giveaway.

As shown in FIG. 10, start and end intervals of an analysis period areselected at step 1002. This could include, for example, the processor202 of the device 200 identifying the sampling or control interval thatoccurs at the beginning of the analysis period previously identified instep 602 and the sampling or control interval that occurs at the end ofthe analysis period previously identified in step 602. Note, however,that the same intervals identified in step 702 could be used here.

Various values are initialized at step 1004. This could include, forexample, the processor 202 of the device 200 initializing an Intervalvalue, which is used to represent the specific sampling or controlinterval being examined. This could also include the processor 202 ofthe device 200 initializing SumΔIV and SumΔIVSqd array values and aCount value to zero.

Controlled variable data for the current interval (as defined by theInterval value) is obtained at step 1006. This could include, forexample, the processor 202 of the device 200 obtaining a bias move andindependent variable (manipulated variable) moves associated with thecontrolled variable. This data could be obtained from any suitablesource(s), such as directly from the model-based controller 106 orindirectly, such as via a historian 114, server 116, or gateway 120.

An independent variable that impacts the controlled variable is selectedat step 1008, and various values are calculated for that independentvariable at step 1010. This could include, for example, the processor202 of the device 200 adding the moves for the i^(th) independentvariable to the SumΔIV value for the i^(th) independent variable. Thiscould also include the processor 202 of the device 200 adding thesquared moves for the i^(th) independent variable to the SumΔIVSqd valuefor the i^(th) independent variable. The next independent variable isselected at step 1012, and steps 1008-1012 repeat until all independentvariables that impact the controlled variable have been processed.Various additional values are then calculated at step 1014. This couldinclude, for example, the processor 202 of the device 200 adding thebias move for the current interval to the SumBias value and adding thesquared bias move for the current interval to the SumBiasSqd value. TheInterval value is incremented at step 1016, and a determination is madewhether the last interval in the analysis period has been processed atstep 1018. If not, the process returns to step 1006 to process the nextinterval's data.

An independent variable that impacts the controlled variable and theassociated bias are selected at step 1020, and a standard deviation ofthat independent variable is determined at step 1022. The standarddeviation of the independent variable functions as a measure of thatindependent variable's contribution to the variance or control giveawayfor the controlled variable. The next independent variable is selectedat step 1024, and steps 1020-1024 repeat until all independent variableshave been processed. The final results from the method 1000 can includea collection of standard deviations representing how multipleindependent variables contribute to the variance or control giveaway forthe controlled variable.

Although FIGS. 7A through 10 illustrate example methods for performingoperations in the method 600 of FIG. 6, various changes may be made toFIGS. 7A through 10. For example, while shown as a series of steps,various steps in each figure could overlap, occur in parallel, occur ina different order, or occur any number of times. Also, while specificvariables and operations have been described here, these relate tospecific implementations of the operations in the method 600 of FIG. 6.Those operations in FIG. 6 could be performed in any other suitablemanner.

FIG. 11 illustrates an example graphical user interface 1100 foridentifying impacts and causes of variability or control giveaway onmodel-based controller performance according to this disclosure. Thegraphical user interface 1100 could, for example, be generated andpresented to at least one user during step 520 in FIG. 5 or during step618 in FIG. 6. For ease of explanation, the graphical user interface1100 is described as being generated by the device 200 of FIG. 2implementing an operator console 110, server 116, or device used in thecomputing cloud 118 of FIG. 1. However, the graphical user interface1100 could be generated by any suitable device and in any suitablesystem.

As shown in FIG. 11, the graphical user interface 1100 includes a tree1102 that identifies various equipment in or associated with anindustrial process. The tree 1102 can be navigated by a user to selectparticular equipment. For the selected equipment, the graphical userinterface 1100 includes a section 1104 identifying the long-termperformance of the equipment, a section 1106 identifying key processvariables for the equipment, and a section 1108 identifying how theequipment operates during different work shifts (which are associatedwith different human operators). The graphical user interface 1100 alsoincludes a section 1110 identifying limit violations for the equipmentand a section 1112 identifying details of a selected limit violation.This information could be generated in any suitable manner, such as whenthe limit violations and the details of a selected limit violation areidentified using the techniques disclosed in U.S. patent applicationSer. No. 15/972,432, entitled “APPARATUS AND METHOD FOR AUTOMATEDIDENTIFICATION AND DIAGNOSIS OF CONSTRAINT VIOLATIONS” (filedconcurrently herewith).

The graphical user interface 1100 further includes a section 1114 thatidentifies how process variability or control giveaway affects theperformance of at least one model-based controller associated with theselected equipment. In particular, the section 1114 here identifiesdifferent contributory causes and how each of those causes contributesto lost opportunity costs (expressed in terms of a percentage). The lostopportunity costs are based on the process variability or controlgiveaway and identify improvements that could be made to the operationof a model-based controller 106. These percentages identify how thedifferent contributory causes can prevent the controller 106 fromoperating at one or more of its controlled variable constraints. Thecontributory causes and the percentages could be those identified in themethod 1000 as described above. A section 1116 identifies one or morepossible corrective courses of action that could be taken to reduce orresolve one or more of the lost opportunity costs identified in thesection 1114. The possible corrective courses of action could beidentified in any suitable manner, such as based on information in aknowledge repository.

A user could select one of the contributory causes identified in thesection 1114 to view additional information about that specific cause.For example, FIGS. 12 and 13 illustrate example drill-down displays 1200and 1300 in a graphical user interface for identifying impacts andcauses of variability or control giveaway on model-based controllerperformance according to this disclosure. In FIG. 12, the display 1200identifies multiple independent variables and how each of thoseindependent variables contributes to process variability or controlgiveaway overall during a current reporting period (such as a singleday). In FIG. 13, the display 1300 identifies multiple independentvariables and how each of those independent variables specificallycontributes to process variability or control giveaway during multiplereporting periods (such as multiple days). These metrics also provide abasis for further heuristic-based analysis, such as to improve thetuning of the controller 106 and to trigger an exploratory workflow todetermine root causes of measured and unmeasured disturbances.

Although FIG. 11 illustrates one example of a graphical user interface1100 for identifying impacts and causes of variability or controlgiveaway on model-based controller performance, various changes may bemade to FIG. 11. For example, the content and layout of the graphicaluser interface 1100 could vary as needed or desired. As a particularexample, the graphical user interface 1100 could vary based on the userrole of the user who is to view the graphical user interface 1100.Although FIGS. 12 and 13 illustrate examples of drill-down displays 1200and 1300 in a graphical user interface for identifying impacts andcauses of variability or control giveaway on model-based controllerperformance, various changes may be made to FIGS. 12 and 13. Forinstance, any other suitable drill-down displays could be generated toidentify impacts and causes of variability or control giveaway onmodel-based controller performance.

Note that the techniques for identifying impacts and causes ofvariability or control giveaway on model-based controller performancedescribed above could be used or operate in conjunction with anycombination or all of various features described in the provisionalpatent applications incorporated by reference above and/or in thefollowing concurrently-filed patent applications (all of which arehereby incorporated by reference):

U.S. patent application Ser. No. 15/972,432, entitled “APPARATUS ANDMETHOD FOR AUTOMATED IDENTIFICATION AND DIAGNOSIS OF CONSTRAINTVIOLATIONS”;

U.S. patent application Ser. No. 15/972,534, entitled “APPARATUS ANDMETHOD FOR ESTIMATING IMPACTS OF OPERATIONAL PROBLEMS IN ADVANCEDCONTROL OPERATIONS FOR INDUSTRIAL CONTROL SYSTEMS”; and

U.S. patent application Ser. No. 15/972,535, entitled “APPARATUS ANDMETHOD FOR IDENTIFYING, VISUALIZING, AND TRIGGERING WORKFLOWS FROMAUTO-SUGGESTED ACTIONS TO RECLAIM LOST BENEFITS OF MODEL-BASEDINDUSTRIAL PROCESS CONTROLLERS”.

In some embodiments, various functions described in this patent documentare implemented or supported by a computer program that is formed fromcomputer readable program code and that is embodied in a computerreadable medium. The phrase “computer readable program code” includesany type of computer code, including source code, object code, andexecutable code. The phrase “computer readable medium” includes any typeof medium capable of being accessed by a computer, such as read onlymemory (ROM), random access memory (RAM), a hard disk drive, a compactdisc (CD), a digital video disc (DVD), or any other type of memory. A“non-transitory” computer readable medium excludes wired, wireless,optical, or other communication links that transport transitoryelectrical or other signals. A non-transitory computer readable mediumincludes media where data can be permanently stored and media where datacan be stored and later overwritten, such as a rewritable optical discor an erasable storage device.

It may be advantageous to set forth definitions of certain words andphrases used throughout this patent document. The terms “application”and “program” refer to one or more computer programs, softwarecomponents, sets of instructions, procedures, functions, objects,classes, instances, related data, or a portion thereof adapted forimplementation in a suitable computer code (including source code,object code, or executable code). The term “communicate,” as well asderivatives thereof, encompasses both direct and indirect communication.The terms “include” and “comprise,” as well as derivatives thereof, meaninclusion without limitation. The term “or” is inclusive, meaningand/or. The phrase “associated with,” as well as derivatives thereof,may mean to include, be included within, interconnect with, contain, becontained within, connect to or with, couple to or with, be communicablewith, cooperate with, interleave, juxtapose, be proximate to, be boundto or with, have, have a property of, have a relationship to or with, orthe like. The phrase “at least one of,” when used with a list of items,means that different combinations of one or more of the listed items maybe used, and only one item in the list may be needed. For example, “atleast one of: A, B, and C” includes any of the following combinations:A, B, C, A and B, A and C, B and C, and A and B and C.

The description in the present application should not be read asimplying that any particular element, step, or function is an essentialor critical element that must be included in the claim scope. The scopeof patented subject matter is defined only by the allowed claims.Moreover, none of the claims invokes 35 U.S.C. § 112(f) with respect toany of the appended claims or claim elements unless the exact words“means for” or “step for” are explicitly used in the particular claim,followed by a participle phrase identifying a function. Use of termssuch as (but not limited to) “mechanism,” “module,” “device,” “unit,”“component,” “element,” “member,” “apparatus,” “machine,” “system,”“processor,” or “controller” within a claim is understood and intendedto refer to structures known to those skilled in the relevant art, asfurther modified or enhanced by the features of the claims themselves,and is not intended to invoke 35 U.S.C. § 112(f).

While this disclosure has described certain embodiments and generallyassociated methods, alterations and permutations of these embodimentsand methods will be apparent to those skilled in the art. Accordingly,the above description of example embodiments does not define orconstrain this disclosure. Other changes, substitutions, and alterationsare also possible without departing from the spirit and scope of thisdisclosure, as defined by the following claims.

1. (canceled)
 2. An automated method comprising: obtaining dataidentifying values of a controlled variable associated with anindustrial process controller that is controlling at least part of anindustrial process; identifying periods when the controlled variable hasbeen moved by the industrial process controller to an associated limit;for at least some of the identified periods: predicting two or morevalues of the controlled variable; determining a variability in the twoor more predicted values of the controlled variable; determining avariability in the controlled variable based at least in part on thevariability in the two or more predicted values; determining when thevariability in the controlled variable meets one or more predeterminedcriteria; generating an alert when the variability in the controlledvariable meets the one or more predetermined criteria; and outputtingthe alert for use in making the industrial process controller controlthe industrial process more optimally.
 3. The automated method of claim2, wherein the one or more predetermined criteria comprises meeting apredetermined threshold.
 4. The automated method of claim 2, wherein theone or more predetermined criteria comprises meeting a predeterminedchange.
 5. The automated method of claim 2, further comprisingidentifying one or more impacts or causes for the generated alert. 6.The automated method of claim 5, further comprising accessing a datahistorian to generate the one or more impacts or causes for thegenerated alert comprise.
 7. The automated method of claim 6, furthercomprising using the data historian to learn the one or more impacts orcauses for the generated alert.
 8. The automated method of claim 5,further comprising outputting the one or more impacts or causes for thegenerated alert.
 9. An apparatus comprising: at least one interfaceconfigured to receive data identifying values of a controlled variableassociated with an industrial process controller that is controlling atleast part of an industrial process; and at least one processorconfigured to: identify periods when the controlled variable has beenmoved by the industrial process controller to an associated limit; forat least some of the identified periods: generate two or more predictedvalues for the controlled variable; determine a variance based at leaston part on a variability in two or more of the predicted values;determine when the variance meets one or more predetermined criteria;generate an alert when the variance meets the one or more predeterminedcriteria; and output the alert for use in making the industrial processcontroller control the industrial process more optimally.
 10. Theapparatus of claim 9, wherein the one or more predetermined criteriacomprises meeting a predetermined threshold.
 11. The apparatus of claim9, wherein the one or more predetermined criteria comprises meeting apredetermined change.
 12. The apparatus of claim 9, wherein the at leastone processor is further configured to identify one or more impacts orcauses for the generated alert.
 13. The apparatus of claim 12, whereinthe at least one processor is further configured to access a datahistorian to generate the one or more impacts or causes for thegenerated alert comprise.
 14. The apparatus of claim 13, wherein the atleast one processor is further configured to use the data historian tolearn the one or more impacts or causes for the generated alert.
 15. Theapparatus of claim 12, wherein the at least one processor is furtherconfigured to output the one or more impacts or causes for the generatedalert.
 16. A non-transitory computer readable medium containinginstructions that when executed cause at least one processing device to:obtain data identifying values of a controlled variable associated withan industrial process controller that is controlling at least part of anindustrial process; identify periods when the controlled variable hasbeen moved by the industrial process controller to an associated limit;for at least some of the identified periods: generate one or morepredicted values for the controlled variable; compare one or more of thepredicted values with one or more of the identified values of thecontrolled variable; determine a variance between the one or more of thepredicted values and the one or more identified values of the controlledvariable; determine when the variance meets one or more predeterminedcriteria; generate an alert when the variance meets the one or morepredetermined criteria; and output the alert for use in making theindustrial process controller control the industrial process moreoptimally.
 17. The non-transitory computer readable medium of claim 16,wherein the one or more predetermined criteria comprises meeting apredetermined threshold.
 18. The non-transitory computer readable mediumof claim 16, wherein the one or more predetermined criteria comprisesmeeting a predetermined change.
 19. The non-transitory computer readablemedium of claim 16, further comprising identifying one or more impactsor causes for the generated alert.
 20. The non-transitory computerreadable medium of claim 19, further comprising accessing a datahistorian to generate the one or more impacts or causes for thegenerated alert.
 21. The non-transitory computer readable medium ofclaim 19, further comprising outputting the one or more impacts orcauses for the generated alert.